home *** CD-ROM | disk | FTP | other *** search
/ 400 MB of Top PC Shareware / 400 MB Of Top PC Shareware.iso / misc / twain103.exe / ESTWAIN.MST < prev    next >
Text File  |  1993-07-06  |  12KB  |  414 lines

  1. '$DEFINE DEBUG  ''Define for script development/debugging
  2. '$INCLUDE 'setupapi.inc'
  3. '$INCLUDE 'msdetect.inc'
  4. ''Dialog ID's
  5. CONST WELCOME       = 100
  6. CONST ASKQUIT       = 200
  7. CONST DESTPATH      = 300
  8. CONST EXITFAILURE   = 400
  9. CONST EXITQUIT      = 600
  10. CONST EXITSUCCESS   = 700
  11. CONST OPTIONS       = 800
  12. CONST APPHELP       = 900
  13. CONST OPTIONIFACE   = 1000
  14. CONST OPTIONSCSI    = 1100
  15. CONST OPTIONPARLLEL = 1200
  16. CONST OPTIONINSTALL = 1400
  17. CONST OPTIHELP      = 1700
  18. CONST OPTNHELP      = 1800
  19. CONST OPTSHELP      = 2000
  20. CONST OPTIONSCANID  = 2100
  21. CONST OPTPHELP      = 2200
  22. CONST DESTPHELP     = 2300
  23. CONST WELCOMES      = 2400
  24. CONST WELCOMEP      = 2600
  25. CONST BADID         = 2700
  26. CONST WELCOMEA      = 2800
  27. CONST DDOSHELP      = 3200
  28. CONST DDOSPATH      = 3400
  29. CONST DASPIPATH     = 3700
  30. CONST DASPIHELP     = 3800
  31. CONST BADFILELOC    = 4000
  32. CONST BADPATH       = 6400
  33. ''Bitmap ID
  34. CONST LOGO = 1
  35. GLOBAL SRCASPI$        ''Default source directory.
  36. GLOBAL DESTDOS$        ''Default destination directory.
  37. GLOBAL DESTWIN$        ''Default destination directory.
  38. GLOBAL DESTTWN$        ''Default destination directory.
  39. GLOBAL BAKFILE$        ''Backup Configuration Filename.
  40. GLOBAL CFGFILE$        ''Configuration Filename.
  41. GLOBAL OPTCUR$      ''Option selection from option dialog.
  42. GLOBAL OPTFACE$      ''Option selection from option interface dialog.
  43. GLOBAL OPTSCSI$      ''Option selection from SCSI option dialog.
  44. GLOBAL OPTSCID$      ''Option selection from SCSI option dialog.
  45. GLOBAL OPTPRLL$      ''Option selection from Parallel option dialog.
  46. GLOBAL OPTNSTL$      ''Option selection from Install option dialog.
  47. GLOBAL ADDSLSH$      ''Optional path requirement due to ASPI disk search.
  48. GLOBAL VERSION%      ''Windows Minor version number
  49. DECLARE SUB Install
  50. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  51. INIT:
  52.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  53.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  54.     SetBitmap CUIDLL$, LOGO
  55.     SetTitle "Epson Scanner Setup Program"
  56.     SetAbout "Epson TWAIN Setup Program","⌐ Copyright 1992-93, Seiko Epson Corporation"
  57.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  58.     IF szInf$ = "" THEN
  59.         szInf$ = GetSymbolValue("STF_CWDDIR") + "ESTWAIN.INF"
  60.     END IF
  61.     ReadInfFile szInf$
  62.     OPTSCID$ ="2"
  63.     OPTCUR$ = "1"
  64.     OPTPRLL$ = "2"
  65.     WinLocation$ = GetWindowsDir
  66.     DESTWIN$ = WinLocation$
  67.     DESTDOS$ = "C:\"
  68.     SRCASPI$ = "A:\"
  69. '$IFDEF DEBUG
  70.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  71.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  72.     IF IsDriveValid(WinDrive$) = 0 THEN
  73.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  74.         GOTO QUIT
  75.     END IF
  76. '$ENDIF ''DEBUG
  77. WELCOME:
  78.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  79.     IF sz$ = "CONTINUE" THEN
  80.         UIPop 1
  81.     ELSE
  82.         GOSUB ASKQUIT
  83.         GOTO WELCOME
  84.     END IF
  85. OPTIONI:
  86.     SetSymbolValue "RadioDefault", OPTNSTL$
  87. OPTLI:
  88.     sz$ = UIStartDlg(CUIDLL$, OPTIONINSTALL, "FRadioDlgProc", OPTNHELP, HELPPROC$)
  89.     OPTNSTL$ = GetSymbolValue("ButtonChecked")
  90.     IF sz$ = "CONTINUE" THEN
  91.         UIPop(1)
  92.     ELSEIF sz$ = "REACTIVATE" THEN
  93.         GOTO OPTLI
  94.     ELSE
  95.         GOSUB ASKQUIT
  96.         GOTO OPTIONI
  97.     END IF
  98. OPTION1:
  99.     SetSymbolValue "RadioDefault", OPTFACE$
  100. OPTL1:
  101.     sz$ = UIStartDlg(CUIDLL$, OPTIONIFACE, "FRadioDlgProc", OPTIHELP, HELPPROC$)
  102.     OPTFACE$ = GetSymbolValue("ButtonChecked")
  103.     IF sz$ = "CONTINUE" THEN
  104.         UIPop(1)
  105.     ELSEIF sz$ = "REACTIVATE" THEN
  106.         GOTO OPTL1
  107.     ELSE
  108.         GOSUB ASKQUIT
  109.         GOTO OPTION1
  110.     END IF
  111.     IF OPTFACE$ = "2" THEN
  112.     GOTO OPTION3
  113.     END IF
  114. OPTION2:
  115.     SetSymbolValue "RadioDefault", OPTSCSI$
  116. OPTL2:
  117.     sz$ = UIStartDlg(CUIDLL$, OPTIONSCSI, "FRadioDlgProc", OPTSHELP, HELPPROC$)
  118.     OPTSCSI$ = GetSymbolValue("ButtonChecked")
  119.     IF sz$ = "CONTINUE" THEN
  120.         UIPop(1)
  121.     ELSEIF sz$ = "REACTIVATE" THEN
  122.         GOTO OPTL2
  123.     ELSE
  124.         GOSUB ASKQUIT
  125.         GOTO OPTION2
  126.     END IF
  127. GETSCSIID:
  128.     SetSymbolValue "EditTextIn", OPTSCID$
  129.     SetSymbolValue "EditFocus", "END"
  130. GETSCSIID1:
  131.     sz$ = UIStartDlg(CUIDLL$, OPTIONSCANID, "FEditDlgProc", APPHELP, HELPPROC$)
  132.     OPTSCID$ = GetSymbolValue("EditTextOut")
  133.     IF sz$ = "CONTINUE" THEN
  134.         IF ASC(OPTSCID$) < 49 THEN
  135.             GOSUB BADID
  136.             GOTO GETSCSIID1
  137.     ELSEIF ASC(OPTSCID$) > 55 THEN
  138.             GOSUB BADID
  139.             GOTO GETSCSIID1
  140.         END IF
  141.         UIPop 1
  142.     ELSEIF sz$ = "REACTIVATE" THEN
  143.        GOTO GETSCSIID1
  144.     ELSEIF sz$ = "BACK" THEN
  145.         UIPop 1
  146.         GOTO OPTIONI
  147.     ELSE
  148.         GOSUB ASKQUIT
  149.         GOTO GETSCSIID
  150.     END IF
  151. GOTO OPTEND
  152. OPTION3:
  153.     SetSymbolValue "RadioDefault", OPTPRLL$
  154. OPTL3:
  155.     sz$ = UIStartDlg(CUIDLL$, OPTIONPARLLEL, "FRadioDlgProc", OPTPHELP, HELPPROC$)
  156.     OPTPRLL$ = GetSymbolValue("ButtonChecked")
  157.     IF sz$ = "CONTINUE" THEN
  158.         UIPop(1)
  159.     ELSEIF sz$ = "REACTIVATE" THEN
  160.         GOTO OPTL3
  161.     ELSE
  162.         GOSUB ASKQUIT
  163.         GOTO OPTION3
  164.     END IF
  165. OPTEND:
  166. GETDOS:
  167.     SetSymbolValue "EditTextIn", DESTDOS$
  168.     SetSymbolValue "EditFocus", "END"
  169. GETDOS1:
  170.     sz$ = UIStartDlg(CUIDLL$, DDOSPATH, "FEditDlgProc", DDOSHELP, HELPPROC$)
  171.     DESTDOS$ = MID$(GetSymbolValue("EditTextOut"),1,3)
  172.     IF sz$ = "CONTINUE" THEN
  173.         IF IsDirWritable(DESTDOS$) = 0 THEN
  174.             GOSUB BADPATH
  175.             GOTO GETDOS1
  176.         END IF
  177.         UIPop 1
  178.     ELSEIF sz$ = "REACTIVATE" THEN
  179.         GOTO GETDOS1
  180.     ELSEIF sz$ = "BACK" THEN
  181.         UIPop 1
  182.         GOTO OPTIONI
  183.     ELSE
  184.         GOSUB ASKQUIT
  185.         GOTO GETDOS
  186.     END IF
  187. GETPATH:
  188.     SetSymbolValue "EditTextIn", DESTWIN$
  189.     SetSymbolValue "EditFocus", "END"
  190. GETPATHL1:
  191.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", DESTPHELP, HELPPROC$)
  192.     DESTWIN$ = GetSymbolValue("EditTextOut")
  193.     IF sz$ = "CONTINUE" THEN
  194.         IF IsDirWritable(DESTWIN$) = 0 THEN
  195.             GOSUB BADPATH
  196.             GOTO GETPATHL1
  197.         END IF
  198.         UIPop 1
  199.     ELSEIF sz$ = "REACTIVATE" THEN
  200.         GOTO GETPATHL1
  201.     ELSEIF sz$ = "BACK" THEN
  202.         UIPop 1
  203.         GOTO OPTIONI
  204.     ELSE
  205.         GOSUB ASKQUIT
  206.         GOTO GETPATH
  207.     END IF
  208.     DESTTWN$ = DESTWIN$+"TWAIN\"
  209. IF OPTFACE$ = "1" THEN
  210.     IF OPTSCSI$ = "1" THEN
  211. GETASPI:
  212.     SetSymbolValue "EditTextIn", SRCASPI$
  213.     SetSymbolValue "EditFocus", "END"
  214. GETASPI1:
  215.             sz$ = UIStartDlg(CUIDLL$, DASPIPATH, "FEditDlgProc", DASPIHELP, HELPPROC$)
  216.                 SRCASPI$ = GetSymbolValue("EditTextOut")
  217.             IF sz$ = "CONTINUE" THEN
  218.             IF MID$(SRCASPI$,LEN(RTRIM$(SRCASPI$)),1) = "\"  THEN
  219.                  ADDSLSH$ = ""
  220.             ELSE
  221.                     ADDSLSH$ = "\"
  222.                 END IF
  223.             IF (EXISTS (SRCASPI$+ADDSLSH$+"ASPI2DOS.SYS")) THEN
  224.             ELSE
  225.                     GOSUB BADFILE
  226.                     GOTO GETASPI1
  227.                 END IF
  228.                 UIPop 1
  229.             ELSEIF sz$ = "REACTIVATE" THEN
  230.                 GOTO GETASPI1
  231.             ELSEIF sz$ = "BACK" THEN
  232.                 UIPop 1
  233.                 GOTO OPTIONI
  234.             ELSE
  235.                 GOSUB ASKQUIT
  236.                 GOTO GETASPI
  237.             END IF
  238.     IF (EXISTS (DESTDOS$+"ASPI2DOS.SYS")) THEN
  239.         ELSE
  240.         CopyFile SRCASPI$+ADDSLSH$+"ASPI2DOS.SYS",DESTDOS$+"ASPI2DOS.SYS",cmoOverwrite,0
  241.         END IF
  242.      END IF
  243. END IF
  244.     Install
  245. QUIT:
  246.     ON ERROR GOTO ERRQUIT
  247.     IF ERR = 0 THEN
  248.         dlg% = EXITSUCCESS
  249.     ELSEIF ERR = STFQUIT THEN
  250.         dlg% = EXITQUIT
  251.     ELSE
  252.         dlg% = EXITFAILURE
  253.     END IF
  254. QUITL1:
  255.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  256.     IF sz$ = "REACTIVATE" THEN
  257.         GOTO QUITL1
  258.     END IF
  259.     UIPop 1
  260.     VERSION% = GetWindowsMinorVersion()
  261.     IF (VERSION% < 10) THEN
  262.         IF (EXISTS (DESTWIN$+"VER.DLL")) THEN
  263.           RemoveFile DESTWIN$+"VER.DLL",cmoNone
  264.         END IF
  265.         IF (EXISTS (DESTWIN$+"MSCUISTF.DLL")) THEN
  266.           RemoveFile DESTWIN$+"MSCUISTF.DLL",cmoNone
  267.         END IF
  268.     END IF
  269.     END
  270. ERRQUIT:
  271.     i% = DoMsgBox("Setup sources were corrupted, call Customer Service!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  272.     END
  273. BADPATH:
  274.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  275.     IF sz$ = "REACTIVATE" THEN
  276.         GOTO BADPATH
  277.     END IF
  278.     UIPop 1
  279.     RETURN
  280. BADFILE:
  281.     sz$ = UIStartDlg(CUIDLL$, BADFILELOC, "FInfo0DlgProc", 0, "")
  282.     IF sz$ = "REACTIVATE" THEN
  283.         GOTO BADFILE
  284.     END IF
  285.     UIPop 1
  286.     RETURN
  287. BADID:
  288.     sz$ = UIStartDlg(CUIDLL$, BADID, "FInfo0DlgProc", 0, "")
  289.     IF sz$ = "REACTIVATE" THEN
  290.         GOTO BADID
  291.     END IF
  292.     UIPop 1
  293.     RETURN
  294. ASKQUIT:
  295.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  296.     IF sz$ = "EXIT" THEN
  297.         UIPopAll
  298.         ERROR STFQUIT
  299.     ELSEIF sz$ = "REACTIVATE" THEN
  300.         GOTO ASKQUIT
  301.     ELSE
  302.         UIPop 1
  303.     END IF
  304.     RETURN
  305. SUB Install STATIC
  306.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  307.     DESTTWN$ = DESTWIN$+"TWAIN\"
  308.     CreateDir DESTDOS$, cmoNone
  309.     CreateDir DESTWIN$, cmoNone
  310.     CreateDir DESTTWN$, cmoNone
  311. VERSION% = GetWindowsMinorVersion()
  312. IF (VERSION% < 10) THEN
  313.     IF (EXISTS (DESTWIN$+"VER.DLL")) THEN
  314.     ELSE
  315.           CopyFile SrcDir$+"VER.DLL",DESTWIN$+"VER.DLL",cmoOverwrite,0
  316.     END IF
  317.     IF (EXISTS (DESTWIN$+"MSCUISTF.DLL")) THEN
  318.     ELSE
  319.           CopyFile SrcDir$+"MSCUISTF.DLL",DESTWIN$+"MSCUISTF.DLL",cmoOverwrite,0
  320.     END IF
  321. END IF
  322. IF OPTPRLL$ = "3" THEN
  323.    OPTPRLL$="0"
  324. END IF
  325. IF OPTNSTL$ = "1" THEN
  326.     CHDIR DESTDOS$
  327.     IF (EXISTS ("CONFIG.SYS")) THEN
  328.         IF (EXISTS ("CONFIG.BAK")) THEN
  329.             KILL "CONFIG.BAK"
  330.         END IF
  331.          NAME "CONFIG.SYS" AS "CONFIG.BAK"
  332.     ELSE
  333.         IF (EXISTS ("CONFIG.BAK")) THEN
  334.             KILL "CONFIG.BAK"
  335.         END IF
  336.         OPEN DESTDOS$+"CONFIG.BAK" FOR APPEND AS #2
  337.         PRINT #2, "REM This line Added by TWAIN SETUP DUE TO NON-EXISTENT CONFIG.SYS"
  338.         CLOSE #2
  339.     END IF
  340.     OPEN DESTDOS$+"CONFIG.BAK" FOR INPUT AS #1
  341.     OPEN DESTDOS$+"CONFIG.SYS" FOR APPEND AS #2
  342.     WHILE EOF(1)=FALSE
  343.         LINE INPUT #1, CONFIG_LINE$
  344.         CONFIG_LINE$=UCASE$(CONFIG_LINE$)
  345.     IF OPTFACE$ = "1" THEN
  346.         IF INSTR(CONFIG_LINE$,"ASPI2DOS.SYS") THEN
  347.             IF OPTSCSI$ = "1" THEN
  348.             ELSE
  349.                 PRINT #2, CONFIG_LINE$
  350.             END IF
  351.         ELSEIF INSTR(CONFIG_LINE$,"EPSN.SYS") THEN
  352.             CONFIG_LINE$=""
  353.         ELSE
  354.             PRINT #2, CONFIG_LINE$
  355.         END IF
  356.     ELSE
  357.         IF INSTR(CONFIG_LINE$,"EPSN.SYS") THEN
  358.             CONFIG_LINE$=""
  359.         ELSE
  360.             PRINT #2, CONFIG_LINE$
  361.         END IF
  362.     END IF
  363.     WEND
  364.     IF OPTFACE$ = "1" THEN
  365.         IF OPTSCSI$ = "1" THEN
  366.             CONFIG_LINE$="DEVICE="+DESTDOS$+"ASPI2DOS.SYS /D /Z"
  367.             PRINT #2, CONFIG_LINE$
  368.         END IF
  369.             CONFIG_LINE$="DEVICE="+DESTDOS$+"EPSN.SYS 3 /i79 /S"+MID$(OPTSCID$,1,1)
  370.             PRINT #2, CONFIG_LINE$
  371.     ELSE
  372.             CONFIG_LINE$="DEVICE="+DESTDOS$+"EPSN.SYS /i79 "+OPTPRLL$
  373.             PRINT #2, CONFIG_LINE$
  374.     END IF
  375.     CLOSE #1,#2
  376. ELSE
  377.     CHDIR DESTDOS$
  378.     IF (EXISTS ("CONFIG.ADD")) THEN
  379.         KILL "CONFIG.ADD"
  380.     END IF
  381.     OPEN "CONFIG.ADD" FOR APPEND AS #2
  382.     IF OPTFACE$ = "1" THEN
  383.         IF OPTSCSI$ = "1" THEN
  384.             CONFIG_LINE$="DEVICE="+DESTDOS$+"ASPI2DOS.SYS /D /Z"
  385.             PRINT #2, CONFIG_LINE$
  386.         END IF
  387.             CONFIG_LINE$="DEVICE="+DESTDOS$+"EPSN.SYS 3 /i79 /S"+MID$(OPTSCID$,1,1)
  388.             PRINT #2, CONFIG_LINE$
  389.     ELSE
  390.             CONFIG_LINE$="DEVICE="+DESTDOS$+"EPSN.SYS /i79 "+OPTPRLL$
  391.             PRINT #2, CONFIG_LINE$
  392.     END IF
  393.     CLOSE #2
  394. END IF
  395.     AddSectionFilesToCopyList "DOSFILES", SrcDir$, DESTDOS$
  396.     AddSectionFilesToCopyList "WINFILES", SrcDir$, DESTWIN$
  397.     AddSectionFilesToCopyList "TWNFILES", SrcDir$, DESTTWN$
  398.     CopyFilesInCopyList
  399.     CreateProgmanGroup "EPSON Scanner", "", cmoNone
  400.     ShowProgmanGroup  "EPSON Scanner", 1, cmoNone
  401.     CreateProgmanItem "EPSON Scanner", "READ ME", MakePath(DESTTWN$,"README.TXT"), "", cmoOverwrite
  402. END SUB
  403. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  404.     IF szDir$ = "" THEN
  405.         MakePath = szFile$
  406.     ELSEIF szFile$ = "" THEN
  407.         MakePath = szDir$
  408.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  409.         MakePath = szDir$ + szFile$
  410.     ELSE
  411.         MakePath = szDir$ + "\" + szFile$
  412.     END IF
  413. END FUNCTION
  414.